home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 351-375 / 359 / dice / dice.lzh / lib / setjmp / setjmp.a
Encoding:
Text File  |  1990-05-18  |  549 b   |  28 lines

  1.  
  2.         ;   SETJMP.A
  3.         ;
  4.  
  5.         section text,code
  6.  
  7.         xdef    _setjmp
  8.         xdef    _longjmp
  9.  
  10. _setjmp
  11.         move.l    4(sp),A0            ; jmp_buf (16 longwords)
  12.         move.l    (sp),A1             ; return address
  13.         movem.l D2-D7/A1-A7,(A0)
  14.         moveq.l #0,D0            ; direct call returns 0
  15.         rts
  16.  
  17. _longjmp
  18.         move.l    4(sp),A0            ; jmp_buf
  19.         move.l    8(sp),D0            ; return value
  20.         movem.l (A0),D2-D7/A1-A7
  21.         addq.l    #4,sp            ; skip where rts would normally be
  22.                         ; but probably has been overwritten
  23.  
  24.         jmp    (A1)                ; this is the real return address
  25.  
  26.         END
  27.  
  28.